// srr设置为false只会在客户端运行 没有process.serve
export default (ctx, inject) => {
    let { store, $cookie } = ctx;

    if (/^\/order\//.test(location.pathname)) {
        // 获取localStorage中的store数据
        let storeCache = localStorage.getItem("storeCache");
        if (storeCache) {
            // 将localStorage中的store数据替换到store中
            store.dispatch("order/initByCache", JSON.parse(storeCache).order);
        }
    }

    //离开页面 刷新前 将store中的订单数据存到localStorage
    window.addEventListener("beforeunload", () => {
        if (/^\/order\//.test(location.pathname)) {
            let storeCache = {
                order: ctx.store.state.order,
            };
            localStorage.setItem("storeCache", JSON.stringify(storeCache));
        }
    });

    // 跨页面通讯
    window.addEventListener("storage", (e) => {
        // 当有事件，且有值的时候，才处理
        const is_null = e.newValue === null || e.newValue === "null";

        if (e.key == "_message" && !is_null) {
            let msg = {};

            try {
                msg = JSON.parse(e.newValue || "{}");
            } catch (err) {}

            if (msg.token) {
                // 登录
                store.dispatch("doLogin", msg.token || "");
            } else {
                // 退出
                store.dispatch("doLogout");
            }
        }
    });

    // 初始化赋值
    // let token =  localStorage.getItem("token") || '';
    // store.dispatch('setToken',token);

    // 监听token变化，当第三方，打开新页面登录时，要监听到
    // window.addEventListener("storage", (e) => {
    //     if (e.key == "token") {
    //         store.dispatch("setToken", e.newValue || "");
    //     }
    // });

    // // 初始化赋值
    // if (process.client) {
    //     try {
    //         // token直接从nuxt.js中获取，不在本地获取了
    //         // const token = localStorage.getItem("token") || "";
    //         // if (token != store.state.token) {
    //         //     store.dispatch("setToken", localStorage.getItem("token") || "");
    //         // }
    //     } catch (error) {
    //         console.log(error);
    //     }
    // }

    // createPersistedState({
    //   // key: 'store',
    //   paths:['designer','order','store','user','product'],
    //   overwrite: true
    // })(store);

    // createPersistedState({
    //   // paths: ['token'],
    //   key: 'store',
    //   storage:{
    //     getItem: (key) => {
    //       // return Cookies.get(key);
    //     },
    //       // Please see https://github.com/js-cookie/js-cookie#json, on how to handle JSON.
    //     setItem: (key, value) =>{
    //        // Cookies.set(key, value, { expires: 365, secure: false }),
    //     },
    //     removeItem: key => {
    //       // Cookies.remove(key)
    //     }
    //   }
    // })(store);
};
